package org.sabayframework.cluster;

import org.sabayframework.activity.ActivityMonitor;
import org.sabayframework.channel.Channel;
import org.sabayframework.queue.ExecutionQueue;

public interface NodeExecutionQueue extends ExecutionQueue {

	/**
	 * Submits a distributed activity to the execution queue.
	 * @throws IllegalStateException if this queue is not active
	 * */
	<I,O> ActivityMonitor<I,O> submit(DistributedActivity<I,O> activity, Channel<I> input, Channel<O> output);

}
